package process

import (
	"chat-cli/message"
	"fmt"
)

//客户端为维护的map
var onlineUsers map[int]*message.User = make(map[int]*message.User, 10)

//编写一个方法 处理返回的NotifyUserStatusMes
func updateUserStatus(notifyUserStatusMes *message.NotifyUserStatusMes) {

	//这里接受到的消息是用户登录发送的 但是可能会重复发送 比如用户重复上线
	//所以进行适当的优化
	user, ok := onlineUsers[notifyUserStatusMes.UserId]
	if !ok {
		//已经存在  直接进行更新
		user = &message.User{
			UserId:     notifyUserStatusMes.UserId,
			UserStatus: notifyUserStatusMes.Status,
		}
	}

	user.UserStatus = notifyUserStatusMes.Status
	onlineUsers[notifyUserStatusMes.UserId] = user
	outputOnlineUser()
}

//在客户端显示当前在线的用户

func outputOnlineUser() {
	fmt.Println("当前在线的用户列表:")
	for id := range onlineUsers {
		fmt.Println("用户id :\t", id)
	}
}
